package org.news.web.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.news.web.domain.News;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.news.web.domain.Tags;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 新闻功能视图对象 news
 *
 * @author Gu Ci
 * @date 2024-04-03
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = News.class)
public class NewsVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 新闻ID，唯一标识每篇新闻的编号
     */
    @ExcelProperty(value = "新闻ID，唯一标识每篇新闻的编号")
    private Long newsId;

    /**
     * 标题
     */
    @ExcelProperty(value = "标题")
    private String title;

    /**
     * 封面图片id
     */
    @ExcelProperty(value = "封面图片id")
    private String cover;


    private String coverUrl;

    /**
     * 新闻内容
     */
    @ExcelProperty(value = "新闻内容")
    private String content;

    /**
     * 新闻简介
     */
    @ExcelProperty(value = "新闻简介")
    private String introduction;

    /**
     * 新闻作者或来源
     */
    @ExcelProperty(value = "新闻作者或来源")
    private String author;

    private String authorName;

    /**
     * 新闻作者属于栏目还是作者
     */
    @ExcelProperty(value = "新闻作者属于栏目还是作者")
    private String authorType;

    /**
     * 新闻申请状态： 草稿或已发布 待审核  通过 打回
     */
    @ExcelProperty(value = "新闻申请状态： 草稿或已发布 待审核  通过 打回")
    private Long applyStatus;

    /**
     * 打回信息
     */
    @ExcelProperty(value = "打回信息")
    private String applyInfo;

    /**
     * 新闻发布时间
     */
    @ExcelProperty(value = "新闻发布时间")
    private Date publishTime;

    /**
     * 记录创建时间
     */
    @ExcelProperty(value = "记录创建时间")
    private Date creationTime;

    /**
     * 记录更新时间
     */
    @ExcelProperty(value = "记录更新时间")
    private Date updateTime;

    /**
     *
     */
    @ExcelProperty(value = "关键词")
    private String relatedKey;

    /**
     * 标签
     */
    @ExcelProperty(value = "标签")
    private String tags;

    private List<Tags> tagsName;

    /**
     * 类别
     */
    @ExcelProperty(value = "类别")
    private String categories;

    /**
     * 浏览量
     */
    @ExcelProperty(value = "浏览量")
    private Long views;

    /**
     * 点赞数量
     */
    @ExcelProperty(value = "点赞数量")
    private Long likes;

    /**
     * 收藏数量
     */
    @ExcelProperty(value = "收藏数量")
    private Long favorites;

    /**
     * 热度
     */
    @ExcelProperty(value = "热度")
    private Long hotness;

    /**
     * 评论数量
     */
    @ExcelProperty(value = "评论数量")
    private Long comments;


    /**
     *
     */
    List<NewsVo> children;


}
